package com.smartbus.bus.domain.dto;

import java.math.BigDecimal;

/**
 * 调度系统站点数据传输对象
 * 包含地图坐标、状态等信息
 *
 * @author smartbus
 * @date 2025-09-24
 */
public class DispatchStationDTO {

    /** 站点ID */
    private Long id;

    /** 站点名称 */
    private String stationName;

    /** 地图X坐标 */
    private Integer mapX;

    /** 地图Y坐标 */
    private Integer mapY;

    /** GPS经度 */
    private BigDecimal longitude;

    /** GPS纬度 */
    private BigDecimal latitude;

    /** 显示颜色 */
    private String color;

    /** 站点状态 */
    private String status;

    /** 站点类型 */
    private String stationType;

    /** 是否为枢纽站 */
    private Boolean isHub;

    /** 当前等待车辆数 */
    private Integer waitingVehicles;

    /** 预估乘客数量 */
    private Integer estimatedPassengers;

    public DispatchStationDTO() {}

    public DispatchStationDTO(Long id, String stationName, BigDecimal longitude, BigDecimal latitude) {
        this.id = id;
        this.stationName = stationName;
        this.longitude = longitude;
        this.latitude = latitude;
        // 设置默认值
        this.color = "#409EFF";
        this.status = "active";
        this.isHub = false;
        this.waitingVehicles = 0;
        this.estimatedPassengers = 0;
    }

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getStationName() {
        return stationName;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public Integer getMapX() {
        return mapX;
    }

    public void setMapX(Integer mapX) {
        this.mapX = mapX;
    }

    public Integer getMapY() {
        return mapY;
    }

    public void setMapY(Integer mapY) {
        this.mapY = mapY;
    }

    public BigDecimal getLongitude() {
        return longitude;
    }

    public void setLongitude(BigDecimal longitude) {
        this.longitude = longitude;
    }

    public BigDecimal getLatitude() {
        return latitude;
    }

    public void setLatitude(BigDecimal latitude) {
        this.latitude = latitude;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStationType() {
        return stationType;
    }

    public void setStationType(String stationType) {
        this.stationType = stationType;
    }

    public Boolean getIsHub() {
        return isHub;
    }

    public void setIsHub(Boolean isHub) {
        this.isHub = isHub;
    }

    public Integer getWaitingVehicles() {
        return waitingVehicles;
    }

    public void setWaitingVehicles(Integer waitingVehicles) {
        this.waitingVehicles = waitingVehicles;
    }

    public Integer getEstimatedPassengers() {
        return estimatedPassengers;
    }

    public void setEstimatedPassengers(Integer estimatedPassengers) {
        this.estimatedPassengers = estimatedPassengers;
    }

    @Override
    public String toString() {
        return "DispatchStationDTO{" +
                "id=" + id +
                ", stationName='" + stationName + '\'' +
                ", longitude=" + longitude +
                ", latitude=" + latitude +
                ", status='" + status + '\'' +
                ", waitingVehicles=" + waitingVehicles +
                '}';
    }
}